Lors de cette séance nous allons apprendre:
A changer l’ordre des données dans un graphique
A selectionner des lignes avec la fonction filter
A modifier ou créer des colonnes avec la fonction mutate
Tout d’abord ouvrez le projet R, créez un nouveau script R et préparez votre environnement de travail:
# Chargez la librairie `tidyverse` (aide: utilisez la fonction `library()`)
# Importer `burghardt_et_al_2015_expt1.txt` et mettez le dans un objet appelé `expt1`
#(aide: utilisez la fonction `read_tsv()`)
facteursPar défaut, les catégories dans un graphique sont ordonnées alphabétiquement. Bien souvent ce n’est pas l’ordre que nous voulons.
Par exemple, essayons de reproduire le graphique suivant:
filter(expt1, temperature==22, day.length==16) %>%
ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
geom_boxplot()
Les génotypes ne sont pas dans le même ordre car ggplot a utilisé l’ordre alphabétique, même s’ils n’étaient pas dans cet ordre dans le tableau.
Afin de changer l’ordre nous devons utiliser un autre type de variable, les facteurs. Les facteurs sont des variables spéciales de type caractère pour lesquels nous pouvons définir des niveaux ( levels ), c’est à dire les modalités prédéfinies de cette variable. Ces niveaux sont les valeurs uniques de la variable auxquelles un ordre peut être attaché.
Nous pouvons convertir une variable en facteurs en utilisant la fonction factor():
# Convertissons genotype dans expt1 en facteurs:
factor(expt1$genotype)
## [1] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [7] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [13] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [19] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [25] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [31] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [37] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [43] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [49] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [55] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [61] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [67] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [73] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [79] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [85] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [91] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [97] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [103] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [109] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [115] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [121] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [127] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [133] Col Ama Col Ama Col Ama Col FRI Col FRI Col FRI
## [139] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [145] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [151] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [157] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [163] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [169] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [175] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [181] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [187] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [193] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [199] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [205] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [211] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [217] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [223] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [229] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [235] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [241] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [247] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [253] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [259] Col FRI Col FRI Col FRI Col FRI Col FRI fca-6
## [265] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [271] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [277] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [283] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [289] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [295] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [301] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [307] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [313] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [319] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [325] fca-6 fca-6 fca-6 flc-3 FRI flc-3 FRI flc-3 FRI
## [331] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [337] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [343] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [349] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [355] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [361] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [367] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [373] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [379] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [385] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [391] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [397] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [403] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [409] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [415] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [421] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [427] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [433] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [439] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [445] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [451] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [457] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [463] flc-3 FRI flk-1 flk-1 flk-1 flk-1 flk-1
## [469] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [475] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [481] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [487] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [493] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [499] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [505] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [511] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [517] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [523] flk-1 fve-3 fve-3 fve-3 fve-3 fve-3
## [529] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [535] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [541] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [547] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [553] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [559] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [565] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [571] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [577] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [583] fve-3 ld-1 ld-1 ld-1 ld-1 ld-1
## [589] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [595] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [601] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [607] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [613] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [619] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [625] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [631] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [637] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [643] ld-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [649] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [655] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [661] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [667] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [673] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [679] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [685] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [691] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [697] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [703] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [709] Ler-1 Ler-1 Ler-1 prmt5 FRI prmt5 FRI prmt5 FRI
## [715] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [721] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [727] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [733] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [739] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [745] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [751] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [757] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [763] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [769] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [775] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [781] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [787] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [793] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [799] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [805] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [811] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [817] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [823] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [829] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [835] prmt5 FRI prmt5 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [841] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [847] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [853] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [859] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [865] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [871] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [877] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [883] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [889] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [895] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [901] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [907] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [913] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [919] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [925] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [931] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [937] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [943] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [949] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [955] vin3-4 FRI vin3-4 FRI vin3-4 FRI
## 10 Levels: Col Ama Col FRI fca-6 flc-3 FRI flk-1 fve-3 ld-1 Ler-1 ... vin3-4 FRI
Nous pouvons voir qu’il y a 10 niveaux, correspondant à chacun des génotypes, et qu’ils sont par ordre alphabétique.
Nous pouvons spécifier l’ordre des niveaux dans la fonction:
factor(expt1$genotype, levels = c("Ler-1", "fca-6", "Col Ama", "flc-3 FRI", "Col FRI", "ld-1", "flk-1",
"fve-3", "prmt5 FRI","vin3-4 FRI"))
## [1] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [7] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [13] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [19] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [25] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [31] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [37] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [43] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [49] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [55] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [61] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [67] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [73] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [79] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [85] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [91] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [97] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [103] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [109] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [115] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [121] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [127] Col Ama Col Ama Col Ama Col Ama Col Ama Col Ama
## [133] Col Ama Col Ama Col Ama Col FRI Col FRI Col FRI
## [139] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [145] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [151] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [157] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [163] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [169] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [175] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [181] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [187] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [193] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [199] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [205] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [211] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [217] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [223] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [229] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [235] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [241] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [247] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [253] Col FRI Col FRI Col FRI Col FRI Col FRI Col FRI
## [259] Col FRI Col FRI Col FRI Col FRI Col FRI fca-6
## [265] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [271] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [277] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [283] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [289] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [295] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [301] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [307] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [313] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [319] fca-6 fca-6 fca-6 fca-6 fca-6 fca-6
## [325] fca-6 fca-6 fca-6 flc-3 FRI flc-3 FRI flc-3 FRI
## [331] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [337] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [343] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [349] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [355] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [361] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [367] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [373] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [379] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [385] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [391] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [397] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [403] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [409] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [415] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [421] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [427] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [433] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [439] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [445] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [451] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [457] flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI flc-3 FRI
## [463] flc-3 FRI flk-1 flk-1 flk-1 flk-1 flk-1
## [469] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [475] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [481] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [487] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [493] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [499] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [505] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [511] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [517] flk-1 flk-1 flk-1 flk-1 flk-1 flk-1
## [523] flk-1 fve-3 fve-3 fve-3 fve-3 fve-3
## [529] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [535] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [541] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [547] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [553] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [559] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [565] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [571] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [577] fve-3 fve-3 fve-3 fve-3 fve-3 fve-3
## [583] fve-3 ld-1 ld-1 ld-1 ld-1 ld-1
## [589] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [595] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [601] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [607] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [613] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [619] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [625] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [631] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [637] ld-1 ld-1 ld-1 ld-1 ld-1 ld-1
## [643] ld-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [649] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [655] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [661] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [667] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [673] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [679] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [685] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [691] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [697] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [703] Ler-1 Ler-1 Ler-1 Ler-1 Ler-1 Ler-1
## [709] Ler-1 Ler-1 Ler-1 prmt5 FRI prmt5 FRI prmt5 FRI
## [715] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [721] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [727] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [733] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [739] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [745] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [751] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [757] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [763] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [769] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [775] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [781] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [787] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [793] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [799] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [805] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [811] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [817] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [823] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [829] prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI prmt5 FRI
## [835] prmt5 FRI prmt5 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [841] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [847] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [853] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [859] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [865] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [871] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [877] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [883] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [889] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [895] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [901] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [907] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [913] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [919] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [925] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [931] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [937] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [943] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [949] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [955] vin3-4 FRI vin3-4 FRI vin3-4 FRI
## 10 Levels: Ler-1 fca-6 Col Ama flc-3 FRI Col FRI ld-1 flk-1 fve-3 ... vin3-4 FRI
Maintenant que nous avons converti la variable ne facteur avec l’ordre des niveaux que nous voulons, nous pouvons l’utiliser pour représenter les variables catégoriques avec l’ordre que nous voulons dans un graphique:
mutate(expt1, genotype = factor(genotype, levels = c("Ler-1", "fca-6", "Col Ama", "flc-3 FRI", "Col FRI",
"ld-1", "flk-1", "fve-3", "prmt5 FRI","vin3-4 FRI"))) %>%
filter( temperature==22, day.length==16) %>%
ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
geom_boxplot()
Nous pouvons aussi ordonner les génotypes en fonction de days.to.bolt. Pour cela nous utilisons la fonction fct_reorder() dans le package forcats (qui est inclus dans tidyverse)
filter(expt1, temperature==22, day.length==16) %>%
mutate( genotype = fct_reorder(genotype, days.to.bolt)) %>%
ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
geom_boxplot()
Exercice 3
Représenter des violin plots de
cauline.leaf.numpour les génotypes debackground“Col”, colorés par la température et ce uniquement pour les plantes sans fluctuation de température et qui sont en jours longs (16 h).Ordonnez les génotypes selon ces deux cas (un graphique par cas):
-1 Dans l’ordre suivant: “Col Ama”, “ld-1”, “fve-3”, “flk-1”
-2 Dans l’ordre de la valeur de
cauline.leaf.num
filterAvec la fonction filter(), nous pouvons garder toutes les lignes de notre table qui correspondent à des plantes qui ont subies une vernalisation.
Tout d’abord, nous devons connaitre les différentes valeurs de la colonne vernalization. Comme nous pouvons voir, il y a deux options: ‘NV’ et ‘V’.
unique(expt1$vernalization)
## [1] "NV" "V"
(note: $ permet de sélectionner une colonne en particulier de la table)
Comme nous voulons garder les plantes qui ont subies une vernalisation, nous devons filtrer les données pour garder les lignes pour lesquelles il y a “V” dans la colonne vernalization:
filter(expt1, vernalization == "V")
## # A tibble: 330 x 15
## plant_nb genotype background temperature fluctuation day.length vernalization
## <dbl> <chr> <chr> <dbl> <chr> <dbl> <chr>
## 1 1 Col Ama Col 12 Con 16 V
## 2 2 Col Ama Col 12 Con 16 V
## 3 3 Col Ama Col 12 Con 16 V
## 4 4 Col Ama Col 12 Con 16 V
## 5 5 Col Ama Col 12 Con 16 V
## 6 6 Col Ama Col 12 Con 16 V
## 7 7 Col Ama Col 12 Con 16 V
## 8 8 Col Ama Col 12 Con 16 V
## 9 1 Col Ama Col 12 Con 8 V
## 10 2 Col Ama Col 12 Con 8 V
## # … with 320 more rows, and 8 more variables: survival.bolt <chr>, bolt <chr>,
## # days.to.bolt <dbl>, days.to.flower <dbl>, rosette.leaf.num <dbl>,
## # cauline.leaf.num <dbl>, blade.length.mm <dbl>, total.leaf.length.mm <dbl>
Nous pouvons utiliser les opérateurs suivant pour définir les conditions pour filtrer les données:
| Opérateur | Condition de sélection | Exemple |
|---|---|---|
< |
inférieur à | filter(expt1, days.to.bolt < 20) |
<= |
inférieur ou égal à | filter(expt1, days.to.bolt <= 20) |
> |
supérieur à | filter(expt1, days.to.bolt > 20) |
>= |
supérieur ou égal à | filter(expt1, days.to.bolt >= 20) |
== |
égal à | filter(expt1, days.to.bolt == 20) |
!= |
différent de | filter(expt1, days.to.bolt != 20) |
%in% |
est contenu dans | filter(expt1, genotype %in% c("Col FRI", "Ler-1")) |
Il est aussi possible de combiner plusieurs conditions de sélection avec les opérateurs suivant:
| Opérateur | Signification | Exemple |
|---|---|---|
& |
ET | filter(expt1, days.to.bolt == 20 & genotype == "Ler-1") |
| |
OU | filter(expt1, rosette.leaf.num < 8 | rosette.leaf.num > 100) |
Nous pouvons aussi identifier les données manquantes (NA) avec la fonction is.na() ou sa négation (en utilisant !):
| Opérateur | Signification | Exemple |
|---|---|---|
is.na() |
données manquante | filter(expt1, is.na(rosette.leaf.num)) |
!is.na() |
donnée non manquante | filter(expt1, !is.na(rosette.leaf.num)) |
Par exemple, nous pouvons sélectionner les plantes qui ont été vernalisées ET qui ont poussées avec une température fluctuante:
filter(expt1, vernalization == "V" & fluctuation == "Var")
Il est aussi possible de sélectionner les plantes qui ont poussées avec 8h de jours OU qui fleurissent tardivement:
filter(expt1, day.length == "8" | days.to.bolt > 85)
Exercice 2: Filtrez les données pour garder les plantes selon les 3 cas de figures suivant (indépendants les uns des autres):
- Plantes qui ne sont pas du background Ler et qui ont été traitées avec une température fluctuante.
- Plantes qui ont fleuries (bolt) en moins de 57 jours et qui ont moins de 40 feuilles de rosette
- Plantes du génotype fca-6 pour qui le blade.length.mm n’est pas manquant
Ajouter un lien avec un graphique
mutateLa fonction mutate() permet d’ajouter de nouvelles variables (i.e. nouvelles colonnes) dans une table, ou de modifier des colonnes déjà existantes.
Par exemple, ajoutons une colonne leaf.length.cm qui va contenir la longueur des feuilles en cm. Pour cela nous devons créer une nouvelle colonne en utilisant la colonne leaf.length.mm qui existe dans la table.
# Créez une nouvelle table avec la colonne supplémentare
expt1.cm <- mutate(expt1, total.leaf.length.cm = total.leaf.length.mm/10)
# Vérifier que la nouvelle colonne est bien là
colnames(expt1.cm)
## [1] "plant_nb" "genotype" "background"
## [4] "temperature" "fluctuation" "day.length"
## [7] "vernalization" "survival.bolt" "bolt"
## [10] "days.to.bolt" "days.to.flower" "rosette.leaf.num"
## [13] "cauline.leaf.num" "blade.length.mm" "total.leaf.length.mm"
## [16] "total.leaf.length.cm"
Nous pouvons aussi créer et modifier plus d’une colonne à la fois, en les séparant par une virgule (,) dans la fonction mutate():
# Créez deux nouvelles colonnes
expt1.cm <- mutate(expt1,
blade.length.cm = blade.length.mm/10,
total.leaf.length.cm = total.leaf.length.mm/10)
# Vérifier que les nouvelles colonnes sont bien là
colnames(expt1.cm)
## [1] "plant_nb" "genotype" "background"
## [4] "temperature" "fluctuation" "day.length"
## [7] "vernalization" "survival.bolt" "bolt"
## [10] "days.to.bolt" "days.to.flower" "rosette.leaf.num"
## [13] "cauline.leaf.num" "blade.length.mm" "total.leaf.length.mm"
## [16] "blade.length.cm" "total.leaf.length.cm"
Attention!! Si vous utilisez le nom d’une colonne déjà existante, vous allez la modifier et non créer une nouvelle colonne.
Exercice 1:
Créez une nouvelle colonne (blade.ratio) avec le ratio de
blade.length.mmettotal.leaf.length.mm
Nous n’avons vu que quelques unes des possibilités pour modifier ou réorganiser des données dans un tableau avec les fonctions dans tidyverse
Afin de découvrir les autres fonctions et de comprendre comment les utiliser, referez vous aux anti-sèches:
antisèche pour la réorganisation de données